#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
WordPress JWT 测试工具 - 主窗口
模块化重构版本
"""

from PySide6.QtWidgets import (
    QMainWindow, QTabWidget, QTextEdit, 
    QWidget, QVBoxLayout, QLabel
)

from src.config import AppConfig
from src.api.wp_client import WPClient

from src.ui.site_settings_tab import SiteSettingsTab
from src.ui.login_tab import LoginTab
from src.ui.validate_token_tab import ValidateTokenTab
from src.ui.user_management_tab import UserManagementTab


class MainWindow(QMainWindow):
    """WordPress JWT 测试工具主窗口"""
    
    def __init__(self):
        super().__init__()
        self.config = AppConfig()
        self.client = WPClient(self.config.get_base_url(), debug=True)
        self.tabs = None
        self.token_view = None
        # 初始化各个标签页引用
        
        self._init_ui()
        self._init_tabs()
        
    def _init_ui(self):
        """初始化UI"""
        self.setWindowTitle("WordPress JWT 测试工具")
        self.setMinimumSize(800, 600)
        
        # 创建中心部件
        central_widget = QWidget()
        self.setCentralWidget(central_widget)
        
        # 创建主布局
        layout = QVBoxLayout(central_widget)
        
        # 创建Token显示区域（仅用于传递给标签页，不在主窗口显示）
        self.token_view = QTextEdit()
        self.token_view.setReadOnly(True)
        self.token_view.setMaximumHeight(1)  # 几乎隐藏，但保持功能
        self.token_view.setVisible(False)  # 完全隐藏
        
        # 创建标签页
        self.tabs = QTabWidget()
        layout.addWidget(self.tabs)
        
    def _init_tabs(self):
        """初始化各个标签页"""
        # 站点设置标签页
        self.site_settings_tab = SiteSettingsTab(self.config, self.client)
        site_widget = self.site_settings_tab.build_ui()
        self.tabs.addTab(site_widget, "🏠 站点设置")
        
        # 登录标签页
        self.login_tab = LoginTab(self.config, self.client, self.token_view)
        login_widget = self.login_tab.build_ui()
        self.tabs.addTab(login_widget, "🔐 登录")
        
        # 验证Token标签页
        self.validate_token_tab = ValidateTokenTab(self.client, self.token_view, self)
        validate_widget = self.validate_token_tab.build_ui()
        self.tabs.addTab(validate_widget, "✅ 验证Token")
        
        # 用户管理标签页
        self.user_management_tab = UserManagementTab(self.client)
        user_widget = self.user_management_tab.build_ui()
        self.tabs.addTab(user_widget, "👥 用户管理")
        
        # 设置标签页样式
        self.tabs.setStyleSheet("""
            QTabWidget::pane {
                border: 1px solid #cccccc;
                background-color: #f8f8f8;
            }
            QTabBar::tab {
                background: #e0e0e0;
                border: 1px solid #cccccc;
                padding: 8px 16px;
                margin-right: 2px;
            }
            QTabBar::tab:selected {
                background: #ffffff;
                border-bottom-color: #ffffff;
            }
            QTabBar::tab:hover {
                background: #f0f0f0;
            }
        """)